#include <iostream>



//动物类
class Animal {
public:
    int age;
};

// 利用虚继承 解决菱形继承的问题
// 继承之前 加上关键字 virtual 变为虚继承
// Animal类称为 虚基类
// 羊类
class Sheep : virtual public Animal {};  // virtual public Animal 继承的是指针，有一个一个虚拟指针表，找到表就找到age了
// 驼类
class Tuo : virtual public Animal {};
// 羊驼类
class SheepTuo :public Sheep, public Tuo {};

void test01() {
    SheepTuo st;
    st.Sheep::age = 18;
    st.Tuo::age = 28;

    std::cout << st.Sheep::age << std::endl;
    std::cout << st.Tuo::age << std::endl;
    std::cout << st.age << std::endl;
}
int main() {
    test01();
    return 0;
}

